package lq2139;

import java.util.HashMap;
import java.util.Map.Entry;
import java.util.Scanner;

public class BruteForce {

	//保存全部因数，key为因数，value为数量
	static HashMap<Long,Long> ys=new HashMap<Long,Long>();
	static long mod = 1000000007;
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		long n = sc.nextInt();
		
		for(long i=1;i<=n;i++) {
			f(i);
		}
		
		long ans = 0L;
		
		for(Entry<Long,Long> e : ys.entrySet()) {
			//System.out.printf("[%d,%d]\n",e.getKey(),e.getValue());
			//key的平方乘以value
			ans+=e.getKey()*e.getKey()*e.getValue()%mod;
			ans = ans%mod;
		}
		System.out.println(ans);

	}
	//暴力分解因数
	static void f(long n) {
		//两层循环找因数
		for(long i=1;i<=n;i++) {
			for(long j=1;j<=n;j++) {
				if(i*j==n) {
					//找到一个因数
					//System.out.println(i);
					
					if(ys.containsKey(i)) {
						//因数在map里面
						long temp = ys.get(i);
						temp++;
						ys.put(i, temp);
					}else {
						//因数不在map里面
						ys.put(i, 1L);
					}
					break;
				}
			}
		}
	}
}
